Skip to content

fix(catalogue): pass the mem0 session date as the timestamp mem0's fix reads - #29

Merged
aitianshi merged 3 commits into
mainfrom
mem0-observation-timestamp
Nov 10, 2026
Merged

aitianshi merged 3 commits into
mainfrom
mem0-observation-timestamp

Conversation

@aitianshi

@aitianshi aitianshi commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Refs #12 (it stays open until a mem0 release carries the upstream fix)

What

Mem0's open-source add dates extracted facts by the day of the run, because it never fills its extraction prompt's Observation Date (mem0ai/mem0#4963, fixes open in mem0ai/mem0#6781 and mem0ai/mem0#5949). Both upstream fixes read that date from metadata["timestamp"]; our adapter passed the session date only as metadata["date"], so bumping the pin would not have reached extraction. The adapter now passes a dated session's date under timestamp as well (undated sessions get none, so Mem0 keeps its default). Mem0 2.2.1 ignores it. Mem0 is not patched or wrapped.

Touches

catalogue

Verified

  • New app/tests/test_mem0_capability.py: with a stand-in for Mem0, a dated session sends timestamp equal to its date; an undated one sends none.
  • Backend suite: python3 app/tests/parallel.py, OK.
  • Not verified against a real Mem0 run: with the pinned 2.2.1 the key is stored as metadata and unused, so scores do not change.

Risk

Low. Mem0 2.2.1 stores timestamp as ordinary metadata; recall still shows date. If a later Mem0 parses timestamp strictly, LongMemEval's 2023/05/21 (Sun) 16:22 format could be rejected; that would surface when the pin is bumped, and the change is undone by reverting this commit.

Mem0's open fix for its Observation Date (mem0ai/mem0#4963) reads the
date from metadata["timestamp"]. The adapter passed it only as
metadata["date"], so a pin bump alone would not reach extraction.
Mem0 2.2.1 ignores the key; scores do not change until the pin moves.
@github-actions

This comment has been minimized.

@aitianshi aitianshi changed the title Pass the mem0 session date as the timestamp Mem0's Observation Date fix reads fix(catalogue): pass the mem0 session date as the timestamp mem0's fix reads Nov 10, 2026
aitianshi added a commit that referenced this pull request Nov 10, 2026
## What

Pull request titles become conventional commit subjects, `type(scope):
summary`. The repository squash-merges with the PR title as the commit
subject, so the title is what `main`'s history shows. AGENTS.md states
the rule with its types (`feat`, `fix`, `perf`, `refactor`, `docs`,
`test`, `ci`, `build`, `chore`, `revert`) and scopes (the parts of
Nullius), and the `/file-issue` skill, which assistants use to open PRs,
applies it. No check enforces it.

## Touches

docs and site · CI and skills

## Verified

- Backend suite `python3 app/tests/parallel.py`, OK.
- The open PRs #29, #30, #32 and #34 already use the form.

## Risk

Documentation only; earlier commit subjects on `main` are not rewritten.
Undone by a revert.
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown

🟡 PR judge · 5 of 7 yes · #29 ↔ #12

Merge risk ❔ UNDECIDED the judge gave no clear reading
Priority 🟡 MEDIUM the deepest path is app/nullius/catalogue/capabilities/mem0/capability.py
Question Verdict
Changes do what the issue asks · 1 of 2 criteria ⚠️ partly
Issue and pull request describe the same change ❔ undecided
Description matches the diff, no more, no less ✅ yes
Diff stays in scope ✅ yes
Tests cover the change, or Verified says how ✅ yes
Docs follow the change ✅ yes
Risk named in the description ✅ yes
Before and after shown –
Acceptance criteria, 1 of 2 met
# Criterion Verdict
1 The mem0 capability gives Mem0 the session's date as its Observation Date for each add (for example by patching `me… ✅ met
2 On 1cea1afa, the recalled facts carry May 2023, not the day of the run. ⚠️ partial
Checks the script runs itself, 4 of 4 pass
No machine attribution trailer in the commits or the description ✓
New code under app/, docs/, .github/ or .claude/ ✓
No Flask import under the backend package ✓
No key-shaped string in the diff ✓

@aitianshi aitianshi self-assigned this Nov 10, 2026
@aitianshi

Copy link
Copy Markdown
Collaborator Author

Extraction is supported in Nullius, but it needs to be supported in mem0 first, unless the user add its own version of mem0 with the needed patch.

@aitianshi
aitianshi merged commit 22140a6 into main Nov 10, 2026
2 checks passed
@aitianshi
aitianshi deleted the mem0-observation-timestamp branch November 10, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant